home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / power / xbatstat.2 / xbatstat / xbatstat-0.2 / xbatstat.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-02-17  |  2.1 KB  |  81 lines

  1. #include <stdio.h>
  2. #include <errno.h>
  3. #include <sys/types.h>
  4. #include <sys/stat.h>
  5. #include <fcntl.h>
  6. #include <unistd.h>
  7. #include <string.h>
  8. #include <forms.h>
  9. #include <apm.h>
  10. #include "xbatstat.h"
  11.  
  12. int main(int argc, char *argv[])
  13. {
  14.   apm_info   i;
  15.   char buf[10], *p;
  16.    
  17.   switch (apm_exists()) {
  18.     case 1: fprintf( stderr, "No APM support in kernel\n" );  exit( 1 );
  19.     case 2: fprintf( stderr, "Old APM support in kernel\n" ); exit( 2 );
  20.   }
  21.  
  22.   fl_initialize(argv[0],"xbatstat",0,0,&argc,argv);
  23.   create_form();
  24.  
  25.   while(1) {
  26.        
  27.       apm_read( &i );
  28.  
  29.       fl_set_slider_value(apm_life, i.battery_percentage);
  30.       fl_set_object_label(apm_status, p);
  31.       fl_set_object_label(apm_batt, p);
  32.       
  33.       if (i.ac_line_status == 1){
  34.      p = "Online";
  35.          fl_set_object_lcol(apm_status,FL_YELLOW);
  36.       } else {
  37.      p = "Offline";
  38.      fl_set_object_lcol(apm_status,FL_BLACK);
  39.       }
  40.       fl_set_object_label(apm_status, p);
  41.      
  42.       sprintf( buf, "%d%%", i.battery_percentage );
  43.       p = buf;
  44.       fl_set_object_label(apm_batt, p);
  45.       
  46.       fl_check_forms();
  47.  
  48.       sleep(1);
  49.   }
  50.   
  51. }
  52.  
  53. void create_form(void)
  54. {
  55.   apm_form = fl_bgn_form(FL_NO_BOX, 45, 45);
  56.   
  57.   apm_life = fl_add_slider(FL_HOR_FILL_SLIDER,0,0,45,15,"");
  58.   fl_set_object_boxtype(apm_life,FL_FRAME_BOX);
  59.   fl_set_object_color(apm_life,FL_COL1,FL_SLATEBLUE);
  60.   fl_set_object_lcol(apm_life,FL_BLACK);
  61.   fl_set_object_lalign(apm_life,FL_ALIGN_RIGHT);
  62.   fl_set_slider_bounds(apm_life, 0, 100);
  63.   
  64.   apm_status = fl_add_text(FL_NORMAL_TEXT,0,30,45,15,"Status");
  65.   fl_set_object_boxtype(apm_status,FL_FRAME_BOX);
  66.   fl_set_object_lsize(apm_status,FL_TINY_SIZE);
  67.   fl_set_object_lalign(apm_status,FL_ALIGN_CENTER);
  68.   fl_set_object_lstyle(apm_status,FL_NORMAL_STYLE);
  69.   
  70.   apm_batt = fl_add_text(FL_NORMAL_TEXT,0,15,45,15,"Life");
  71.   fl_set_object_boxtype(apm_batt,FL_FRAME_BOX);
  72.   fl_set_object_lsize(apm_batt,FL_SMALL_SIZE);
  73.   fl_set_object_lalign(apm_batt,FL_ALIGN_CENTER);
  74.   fl_set_object_lstyle(apm_batt,FL_ITALIC_STYLE+FL_EMBOSSED_STYLE);
  75.   
  76.   fl_end_form();
  77.   fl_set_form_position(apm_form, 591, 431);
  78.   fl_show_form(apm_form, FL_PLACE_GEOMETRY, FL_TRANSIENT, "xbatstat");
  79. }
  80.  
  81.